package com.diaohaiwen.basic.account.obj.model.table;

import com.mybatisflex.core.query.QueryColumn;
import com.mybatisflex.core.table.TableDef;

/**
 * 系统账户表 表定义层。
 *
 * @author 刁海文
 * @since 2023-07-20 19:06:16
 */
public class AccountDef extends TableDef {

    /**
     * 系统账户表
     */
    public static final AccountDef account = new AccountDef();

    /**
     * 主键ID
     */
    public final QueryColumn id = new QueryColumn(this, "id");

    /**
     * 用户的登录密码，加密后
     */
    public final QueryColumn salt = new QueryColumn(this, "salt");

    /**
     * 用户邮箱
     */
    public final QueryColumn email = new QueryColumn(this, "email");

    /**
     * 白名单;TRUE:000000登录，FALSE: 验证码登录
     */
    public final QueryColumn white = new QueryColumn(this, "white");

    /**
     * 用户手机号
     */
    public final QueryColumn mobile = new QueryColumn(this, "mobile");

    /**
     * 登录密码
     */
    public final QueryColumn passwd = new QueryColumn(this, "passwd");

    /**
     * 账户状态
     */
    public final QueryColumn status = new QueryColumn(this, "status");

    /**
     * 创建时间
     */
    public final QueryColumn created = new QueryColumn(this, "created");

    /**
     * 更新时间
     */
    public final QueryColumn updated = new QueryColumn(this, "updated");

    /**
     * 租户ID;用于管理人员切店使用
     */
    public final QueryColumn tenantId = new QueryColumn(this, "tenant_id");

    /**
     * 用户姓名
     */
    public final QueryColumn username = new QueryColumn(this, "username");

    /**
     * 创建人
     */
    public final QueryColumn createdBy = new QueryColumn(this, "created_by");

    /**
     * 更新人
     */
    public final QueryColumn updatedBy = new QueryColumn(this, "updated_by");

    /**
     * 租户CODE;用于管理人员切店使用
     */
    public final QueryColumn tenantCode = new QueryColumn(this, "tenant_code");

    /**
     * 部门ID
     */
    public final QueryColumn departmentId = new QueryColumn(this, "department_id");

    /**
     * 头像
     */
    public final QueryColumn headPortrait = new QueryColumn(this, "head_portrait");

    /**
     * 所有字段。
     */
    public final QueryColumn allColumns = new QueryColumn(this, "*");

    /**
     * 默认字段，不包含逻辑删除或者 large 等字段。
     */
    public final QueryColumn[] defaultColumns = new QueryColumn[]{id, createdBy, created, updatedBy, updated, tenantId, tenantCode, username, mobile, email, salt, passwd, departmentId, status, headPortrait, white};

    public AccountDef() {
        super("", "account");
    }

}
